Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Site Title, Post Title: Fix typography for blocks with a children #64911

Merged
merged 3 commits into from
Sep 5, 2024

Conversation

rafaelgallani
Copy link
Contributor

@rafaelgallani rafaelgallani commented Aug 29, 2024

Related to:

What?

This PR fixes the typography properties for Site Title and Post Title blocks, enabling their specific styles to be respected/take precedence over more generic styles.

Why?

Individual typography styles for the block are not respected if it acts as a link (if the "Make title a link" setting is enabled). Styles-defined settings are being used for these blocks. The text decoration, font family, and a few other attributes (described below) can't be set individually for these blocks, then.

How?

  • The selectors setting for the typography within the block.json of the blocks needs to be updated - as in the PR - to ensure any theme.json style change also affects the inner a element;
  • There are also CSS rules to pass through editor-defined styles from the parent element to the a children, if present; otherwise, use whatever gets defined in Styles/theme.json.

Testing Instructions

  • To test block-specific styles:
    • Go to Appearance > Editor;
    • Select "Styles" and edit link-specific styles - set a different font family for them;
    • Then, in any template, add the "Site Title" block;
    • Try to change the font to one different than previously selected, and ensure it works properly.
  • To test theme.json styles:
    • Activate emptytheme;
    • Define specific styles for the core/site-title element:
    • "styles": {
          "blocks": {
              "core/site-title": {
                  "typography": {
                      "fontFamily": "Comic Sans MS, sans-serif"
                  }
              }
          }
      }
    • Go to Appearance > Editor;
    • Add the "Site Title" block in any template and ensure the font used in theme.json is being correctly displayed;
    • Change the font family for the block and ensure it gets correctly updated.

Any other typography property can also be used (font was just used as an example):

  • Font;
  • Size
  • Appearance;
  • Line height;
  • Letter spacing;
  • Decoration;
  • Letter case.

Screenshots or screencast

Before

before.mov

After

after.mov

Copy link

github-actions bot commented Aug 29, 2024

Size Change: +2.15 kB (+0.12%)

Total Size: 1.78 MB

Filename Size Change
build/block-editor/index.min.js 257 kB +91 B (+0.04%)
build/block-editor/style-rtl.css 16.3 kB -4 B (-0.02%)
build/block-editor/style.css 16.3 kB -4 B (-0.02%)
build/block-library/blocks/post-title/style-rtl.css 226 B +126 B (+126%) 🆘
build/block-library/blocks/post-title/style.css 226 B +126 B (+126%) 🆘
build/block-library/blocks/site-title/style-rtl.css 206 B +116 B (+128.89%) 🆘
build/block-library/blocks/site-title/style.css 206 B +116 B (+128.89%) 🆘
build/block-library/blocks/social-links/editor-rtl.css 757 B +81 B (+11.98%) ⚠️
build/block-library/blocks/social-links/editor.css 756 B +81 B (+12%) ⚠️
build/block-library/editor-rtl.css 11.8 kB +56 B (+0.48%)
build/block-library/editor.css 11.8 kB +57 B (+0.48%)
build/block-library/index.min.js 217 kB +70 B (+0.03%)
build/block-library/style-rtl.css 15 kB +143 B (+0.96%)
build/block-library/style.css 15 kB +140 B (+0.94%)
build/components/style-rtl.css 12.1 kB +11 B (+0.09%)
build/components/style.css 12.1 kB +11 B (+0.09%)
build/edit-site/index.min.js 217 kB +535 B (+0.25%)
build/edit-site/posts-rtl.css 7.28 kB +56 B (+0.78%)
build/edit-site/posts.css 7.28 kB +59 B (+0.82%)
build/edit-site/style-rtl.css 12.6 kB +54 B (+0.43%)
build/edit-site/style.css 12.6 kB +53 B (+0.42%)
build/interactivity/debug.min.js 16.4 kB +94 B (+0.58%)
build/interactivity/index.min.js 13.2 kB +77 B (+0.59%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 951 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.31 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/content-rtl.css 4.57 kB
build/block-editor/content.css 4.56 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 538 B
build/block-library/blocks/button/style.css 538 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 328 B
build/block-library/blocks/buttons/style.css 328 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 228 B
build/block-library/blocks/comments-pagination/editor.css 217 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 832 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 631 B
build/block-library/blocks/cover/editor-rtl.css 641 B
build/block-library/blocks/cover/editor.css 642 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.6 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 342 B
build/block-library/blocks/form-input/style.css 342 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 470 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 955 B
build/block-library/blocks/gallery/editor.css 958 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 344 B
build/block-library/blocks/group/editor.css 344 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 894 B
build/block-library/blocks/image/editor.css 892 B
build/block-library/blocks/image/style-rtl.css 1.59 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.65 kB
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 179 B
build/block-library/blocks/latest-posts/editor.css 179 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 304 B
build/block-library/blocks/media-text/editor.css 303 B
build/block-library/blocks/media-text/style-rtl.css 516 B
build/block-library/blocks/media-text/style.css 515 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.2 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.25 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-content/style-rtl.css 79 B
build/block-library/blocks/post-content/style.css 79 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 225 B
build/block-library/blocks/query-pagination/editor.css 215 B
build/block-library/blocks/query-pagination/style-rtl.css 287 B
build/block-library/blocks/query-pagination/style.css 283 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 452 B
build/block-library/blocks/query/editor.css 451 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 672 B
build/block-library/blocks/search/style.css 671 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/search/view.min.js 475 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/social-link/editor-rtl.css 338 B
build/block-library/blocks/social-link/editor.css 338 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 396 B
build/block-library/blocks/video/editor.css 397 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.1 kB
build/block-library/common.css 1.1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 52.4 kB
build/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 224 kB
build/compose/index.min.js 12.9 kB
build/core-commands/index.min.js 2.82 kB
build/core-data/index.min.js 73.2 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.98 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 12.7 kB
build/edit-post/style-rtl.css 2.31 kB
build/edit-post/style.css 2.31 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.2 kB
build/edit-widgets/style.css 4.2 kB
build/editor/index.min.js 101 kB
build/editor/style-rtl.css 9.28 kB
build/editor/style.css 9.29 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.09 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.54 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.78 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 742 B
build/interactivity/router.min.js 2.8 kB
build/interactivity/search.min.js 615 B
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.18 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.3 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.61 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.34 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 1.01 kB
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 kB
build/router/index.min.js 1.96 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.85 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.2 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@@ -3,6 +3,29 @@
// This block has customizable padding, border-box makes that more predictable.
box-sizing: border-box;

&[style*="font-weight"] :where(a) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we add more styling options we need to create another selector following the same logic. Plus these selectors don't look ideal and we are sending many bytes over the wise but it seems a fair trade-off.

Copy link
Member

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this @rafaelgallani 👍
This solution works and personally, I'm ok with it, it is not ideal but there is not ideal solution in this case.

I would love a second option on this one to know if we can merge it. Any thoughts on this @noisysocks, @aaronrobertshaw, or @oandregal ?

@rafaelgallani rafaelgallani marked this pull request as ready for review August 29, 2024 21:39
Copy link

github-actions bot commented Aug 29, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: rafaelgallani <rafaelgalani@git.wordpress.org>
Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: andrewserong <andrewserong@git.wordpress.org>
Co-authored-by: annezazu <annezazu@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@annezazu
Copy link
Contributor

annezazu commented Sep 3, 2024

Noting that I tested this PR and confirmed it resolves #41725

Copy link
Contributor

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work here!

This solution works and personally, I'm ok with it, it is not ideal but there is not ideal solution in this case.
I would love a second option on this one to know if we can merge it.

If we add more styling options we need to create another selector following the same logic. Plus these selectors don't look ideal and we are sending many bytes over the wise but it seems a fair trade-off.

Good points. TL;DR: On balance I think I lean toward the idea of including the additional CSS here to factor in the link state, as it's a pretty common one.


Longer thoughts:

That said, these are both dynamic blocks where their markup is generated at render time. This means that it could be technically possible to inject the desired inline styles into the a tag at render time if need be?

The main problem with doing that is that it would add further complexity to the PHP side of things. For example if we intercepted the attributes from the call to get_block_wrapper_attributes we could (theoretically) either grab the styles we need, or check for the presence of certain inline styles and then dynamically output the inherit rules as needed. That gets pretty messy once other styles like padding are involved, as we wouldn't want them to be duplicated on the a element. (Example wrapper attributes: style="background-color:#f7a1a1; font-size:clamp(0.984rem, 0.984rem + ((1vw - 0.2rem) * 0.86), 1.5rem);line-height:1.1; border-color:#d27373;border-width:15px; padding-top:15px;padding-bottom:15px;padding-left:15px;padding-right:15px;" class="wp-block-post-title has-background has-border-color")

So, a second option (still PHP) could be to skip serialization for the Typography support, and call the relevant Typography and/or style engine functions from within the PHP version of these blocks, and then inject the results into the a tag instead of the wrapper. This again has the problem of added complexity, and would need to be duplicated in JS, too.

All up, this leans me to think that the approach in this PR is likely the simplest as it only adds some additional rules. My vote would be to go with the current state of this PR, but I mostly wanted to share the thoughts above as a potential alternative in case anyone else thought it worth pursuing.

Testing well for me:

✅ Font-weight at the individual block level overrides anchor styles
✅ Font-family at the individual block level overrides anchor styles
✅ Font-size at the individual block level overrides anchor styles
✅ Line-height at the individual block level overrides anchor styles
✅ Font-style at the individual block level overrides anchor styles
✅ Letter-spacing at the individual block level works as expected (I don't know if you can set it for the anchor in global styles, so I wasn't too sure if the extra rule is needed, but it's working well in testing)
✅ Text-decoration at the individual block level works as expected. I noticed that it didn't always work reliably in global styles, but I don't think that's really related to this PR and not a blocker for proceeding.

LGTM! 🎉

It might be worth getting a second approving PR due to the discussion surrounding the CSS rules, but overall I'm in favour of this approach 👍

@andrewserong andrewserong added [Feature] Typography Font and typography-related issues and PRs [Type] Bug An existing feature does not function as intended [Block] Post Title Affects the Post Title Block [Block] Site Title Affects the Site Title Block labels Sep 4, 2024
@rafaelgallani
Copy link
Contributor Author

@andrewserong Wow, that's a very detailed overview. Thank you so much for that!

So, a second option (still PHP) could be to skip serialization for the Typography support, and call the relevant Typography and/or style engine functions from within the PHP version of these blocks, and then inject the results into the a tag instead of the wrapper. This again has the problem of added complexity, and would need to be duplicated in JS, too.

I like this idea, but, yeah, I think we would need to duplicate this in JS.
And I also think this would solve another related issue (which I'm still trying to find) of the heading styles (h1, h2...) not being applied to the a child tag.

Also, I just wanted to confirm before merging this one - it's been a while since my last contribution to Gutenberg: since we got a review from a gutenberg-core team member (you 😬) we're good to go, right?
And.. Is there anything I need to add (a tag or comment) so my PR gets picked in the next RC? I'm basing my comment on these guidelines.

@andrewserong
Copy link
Contributor

andrewserong commented Sep 4, 2024

Also, I just wanted to confirm before merging this one - it's been a while since my last contribution to Gutenberg: since we got a review from a gutenberg-core team member (you 😬) we're good to go, right?

Yes, I think we're good to go. @jorgefilipecosta is also a gutenberg-core team member and seemed happy with this approach but wanted a second opinion, so with my review too and Anne confirming it fixes the issue, I think we're good here. We don't have a formal number of approvals process in the Gutenberg repo, so determining whether or not a PR is ready for merge is done on a bit of a case by case basis, depending on how risky a PR might seem (or how easy it might be to make further updates).

And.. Is there anything I need to add (a tag or comment) so my PR gets picked in the next RC?

Nope! The next RC will be cut from trunk so merging a PR means it'll automatically get picked up in the next release cycle. If we're currently in an RC-phase (we're not just yet) then we can also backport urgent PRs to the current RC by flagging it for release leads via the Backport to Gutenberg RC label and manually updating the milestone after the PR is merged. But we don't have to do that for this one right now 🙂

This looks good to merge, to me!

@rafaelgallani
Copy link
Contributor Author

@jorgefilipecosta is also a gutenberg-core team member and seemed happy with this approach but wanted a second opinion, so with my review too and Anne confirming it fixes the issue, I think we're good here.

Yeah. I haven't noticed that he is also a team member, sorry 😅


Alright then. Merging this one. Thanks!

@rafaelgallani rafaelgallani merged commit bc96d19 into trunk Sep 5, 2024
75 of 77 checks passed
@rafaelgallani rafaelgallani deleted the fix/typography-for-blocks-with-anchor-children branch September 5, 2024 16:34
@github-actions github-actions bot added this to the Gutenberg 19.3 milestone Sep 5, 2024
@andrewserong andrewserong added the Backport to Gutenberg RC Pull request that needs to be backported to a Gutenberg release candidate (RC) label Sep 6, 2024
@richtabor
Copy link
Member

Noting an issue here:

From this theme.json:

"core/site-title": {
                "elements": {
                    "link": {
                        "typography": {
                            "textDecoration": "none"
                        }
                    }
                },
                "typography": {
                    "fontSize": "var(--wp--preset--font-size--medium)",
                    "fontWeight": "550"
                }
            }

and

"h1": {
                "typography": {
                    "fontSize": "var(--wp--preset--font-size--xx-large)",
                    "lineHeight": "1"
                }
            },

I'm getting this:

CleanShot 2024-09-09 at 10 28 17

CleanShot 2024-09-09 at 10 26 45

Because the elements.h1 styles are applied to the <h1>, effectively applying a font size to the wrapping H1.

vcanales pushed a commit that referenced this pull request Sep 11, 2024
…64911)

* Apply styles for element + `a` child when present

* Inherit styles from parent element when present

* Add missing `-font-family` attribute selector
cbravobernal pushed a commit that referenced this pull request Sep 11, 2024
* Core Data: Fix the 'query._fields' property check inside 'getEntityRecord' resolver (#65079)


Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
Co-authored-by: jsnajdr <jsnajdr@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>

* Site Title, Post Title: Fix typography for blocks with `a` children (#64911)

* Apply styles for element + `a` child when present

* Inherit styles from parent element when present

* Add missing `-font-family` attribute selector

* Interactivity API: Prevent calling `proxifyContext` over an already-proxified context inside the `wp-context` directive (#65090)

* Do not store the proxified context inside  `currentValue.current`.

* Update changelog

Co-authored-by: DAreRodz <darerodz@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

---------

Co-authored-by: George Mamadashvili <georgemamadashvili@gmail.com>
Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
Co-authored-by: jsnajdr <jsnajdr@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>
Co-authored-by: Rafael Gallani <galani.rafael@gmail.com>
Co-authored-by: David Arenas <david.arenas@automattic.com>
Co-authored-by: DAreRodz <darerodz@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>
"style": "wp-block-site-title"
"style": "wp-block-site-title",
"selectors": {
"typography": ".wp-block-site-title > span, .wp-block-site-title > a"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This introduces a regression where the editor and frontend apply different styles. The Site Title block doesn't render an inner span on the frontend.

As proposed over on #65169, I have some ideas to address this and the other issue flagged in #64911 (comment).

I'll get a draft PR up soon.

justintadlock added a commit to x3p0-dev/x3p0-ideas that referenced this pull request Sep 17, 2024
Gutenberg 19.2 broke `theme.json` styles on the Site Title block by changing the selector to specifically target the link rather and not the block itself. This change reverts that selector to its original state.

See: WordPress/gutenberg#64911
@kevin940726 kevin940726 removed the Backport to Gutenberg RC Pull request that needs to be backported to a Gutenberg release candidate (RC) label Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Post Title Affects the Post Title Block [Block] Site Title Affects the Site Title Block [Feature] Typography Font and typography-related issues and PRs [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants